﻿using System;
namespace Crawler.DataAccess
{
    interface IDataProvider
    {
        void DeleteModel(string metadata, object filter);
        void InsertModel(object model);
        System.Collections.Generic.List<T> LoadAllModels<T>(string metadataName);
        System.Collections.Generic.List<T> LoadAllModels<T>(string metadataName, object modelFilter);
        System.Collections.Generic.List<T> LoadAllModels<T>(string metadataName, object modelFilter, int startIndex, int count);
        System.Collections.Generic.List<T> LoadAllModels<T>(string metadataName, object modelFilter, int topN);
        System.Collections.Generic.Dictionary<string, object> LoadColumns(string metadataName, object modelFilter, params string[] columns);
        object LoadModel(string metadataName, object modelFilter);
        void UpdateModel(string metadata, object model);
    }
}
